Core.createModule('.button', {
    name : 'BaseButton',
    init : function (options) {
        this.log('button created!');
    },
    events : {
        click : function () {
            this.log('clicked!');
            // Send an event to all modules named 'panic'
            this.send('panic');
            // Delete this module
            this.del();
        },
        destroy : function () {
            this.log('destroying!');
            // Detach the module's context element from the DOM
            this.context.detach();
        },
        // Event handler for the 'panic' event
        panic : function () {
            // If another button was clicked and destroyed...panic!
            this.context.html("Woah! Don't Click Me!");
        }
    }
});

Core.createModuleFrom('.button', '.emo-button', {
    name : 'EmoButton',
    events : {
        // Override the parents 'panic' handler
        panic : function () {
            this.context.html("Go Ahead! Kill me! I Don't care")
        }
    }
});